模仿Locky的中文勒索软件分析
安天CERT在分析的过程中发现该勒索软件包含解密程序,在勒索窗口中存在一个按键“查询当前付款状态及解密”。当用户点击该按键时,该勒索软件获取比特币钱包地址,连接比特币官网查询当前该账户钱包余额是否大于等于0.045BTC,若大于则进行相应的解密操作,同时发现目前有一个比特币钱包地址收到了0.05BTC。
具体ATT&CK技术行为描述表:
ATT&CK阶段/类别 | 具体行为 | 注释 |
执行 | 诱导用户执行 | 诱导用户执行邮件中的附件 |
持久化 | 利用自启动执行或登录 | 添加注册表实现自动启 |
发现 | 发现文件和目录 | 枚举系统内文件和目录 |
发现进程 | 获取进程名称判断恶意代码是否执行 | |
影响 | 损毁数据 | XOR指定后缀名文件的前100byte |
篡改可见内容 | XOR指定后缀名文件的前100byte |
3.1 个人防护
3.2 企业防护
加密文件命名方式 | <原文件名>+.locky |
联系方式 | 无 |
加密文件类型 | 试图采用非对称加密RSA、对称加密AES和XOR加密三种加密方式任意一种方式进行加密。本次分析的样本采用的加密策略是XOR加密,采用指定长度的字符XOR指定文件前100byte字符。 |
勒索币种与金额 | 0.05个比特币 |
是否有针对性 | 未发现 |
能否解密 | 能 |
是否内网传播 | 否 |
勒索窗口 |
|
5.1 样本标签
表5‑1 样本标签
病毒名称 | Trojan/MSIL.locky |
原始文件名 | Leen.exe |
MD5 | B0E68A3352D31A9DD403A5ACAE6387A0 |
处理器架构 | Intel 386 or later, and compatibles |
文件大小 | 127.50 KB (130,560 字节) |
文件格式 | Win32 EXE |
时间戳 | 2069-12-23 16:26:41(伪造) |
数字签名 | 无 |
加壳类型 | 无 |
编译语言 | .NET |
VT首次上传时间 | 2020-09-19 17:36:41 |
VT检测结果 | 51/70 |
5.2 样本行为
5.2.1 勒索初始化
该中文勒索软件使用.net语言编写。其运行后,首先通过获取进程名称判断恶意代码是否执行,若已执行则弹出“应用执行中,请勿重复执行,首次执行需耗时20分钟初始化”窗口,并退出程序。
图5‑1 弹出窗口
判断“%USERNAME%\Documents\Driver”目录下是否存在b.print文件且文件内容为“6688123”,若存在则表示用户文件已交纳赎金后解密,无需再加密,则退出程序,否则重复加密。所以该文件可作为该勒索软件的免疫文件。
使用IE浏览器打开hxxps://lihi1.cc/4kdW2(失陷主机、钓鱼网站),判断是否可以连接网络。
若连接网络成功则将自身复制到“%USERNAME%\Documents\WindowsShell”目录下,并将文件属性设置为隐藏。
打开CMD命令行,将其窗口隐藏,运行“%USERNAME%\Documents\WindowsShell”下的复制过来的样本并将自身程序退出。
将“%USERNAME%\Documents\WindowsShell”目录下的自身添加到注册表实现开机自启动。
5.2.2 加密方式
安天CERT通过对该勒索软件分析发现其试图采用非对称加密RSA、对称加密AES和XOR加密三种加密方式任意一种方式进行加密。通过对传入的参数不同进行相应的不同加密方式,如下所示:
在本次所分析的样本中采用的加密策略为XOR加密,所以通过该方式加密的文件可以进行解密。XOR加密密钥如下表所示:
表5‑2 XOR加密字符
XOR加密密钥 | 类型 |
1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5 | Byte |
XOR加密具体加密方式为采用指定长度的字符XOR指定文件前100byte字符。
获取用户主机上磁盘信息,如下图所示:
进入加密函数中LockTXTFiles加密函数进行加密。如下图所示:
试图模仿Locky勒索软件,对加密的文件追加“.locky”后缀名。具体格式为:<原文件名>+.locky。如下图所示:
在分析的过程中发现该勒索软件的非对称加密RSA和对称加密AES尚未完成,推测其为测试样本。如下所示非对称加密RSA函数内容为空。
5.2.3 指定后缀名的文件
表5‑3 勒索软件指定的后缀名
.gif | .jpg | .txt | .png | .xlsx | .ppt | .html | |
.xls | .doc | .docx | .pptx | .aam | .abf | .adb | .adi |
.afm | .ai | .all | .anc | .aps | .ari | .art | .asc |
.ase | .asm | .asp | .avi | .bak | .bat | .c | .cad |
.cap | .ccb | .cda | .cdf | .class | .clss | .com | .cpp |
.crt | .mov | .csv | .db | .go | .ini | .jpeg | .java |
.jar | .js | .mpeg | .mp4 | .wav | .mp3 | .py | .pot |
.pon | .ra | .rtf | .vbs | .vbp | .vba | .wps |
5.2.4 样本衍生文件
表5‑4 衍生文件路径与文件及其功能
衍生文件路径与文件名 | 功能 |
%USERNAME%\Documents\Driver\a.print | 加密后的比特币地址 |
%USERNAME%\Documents\Driver\aaa.print | 记录比特币金额倍数 |
%USERNAME%\Documents\Driver\KKK.print | 勒索软件运行日志 |
%USERNAME%\Documents\Driver\t.print | 记录软件窗口倒计时的时间 |
%USERNAME%\Documents\Driver\b.print | 记录加密过的标志 |
%USERNAME%\Documents\Driver\K.log | (推测)记录加密RSA密钥 |
%USERNAME%\Documents\Driver\K. print | (推测)记录AES密钥 |
%USERNAME%\Documents\WindowsShell\ HttpAgilityPack.dll | 未知 |
判断“HttpAgilityPack.dll”是否在“%USERNAME%\Documents\WindowsShell”目录下存在,若不存在则创建HttpAgilityPack.dll。读取HttpAgilityPack.dll中是否存在“ot”,“main”字符串,不存在则写入“ot 0 main”字符串。由于HttpAgilityPack.dll在该勒索软件中并未被调用,其功能未知。
5.2.5 比特币钱包地址
表5‑5 比特币钱包地址
1Ly1hXiXG5fa4k79of6xPm4xLYFyj5iH8N |
1L9REpvzBkWUhVKzsoLJEVLBh19Ng5jiqb |
1JXXsYGiNmVzEyuj29murEpFqc9sXr5dhn |
1FuPAucXqBXvhzzXguCyQAH7AbGHg6xfrM |
1FgbsSWNHzDnHjbxokLqe1rbjy4juSpsas |
从五个比特币钱包地址中随机获取一个钱包地址与“\u0005”进行异或加密,将其保存在“%USERNAME%\Documents\Driver\a.print”文件中,待解密时读取该文件。
安天CERT在跟踪比特币钱包地址时发现其中一个钱包已经收到了一个价值为0.05BTC,以本报告发布前的比特币汇率为准,0.05BTC约为11582人民币。
5.2.6 勒索窗口
勒索软件加密完成后在桌面弹出一个勒索窗口,提示受害者文件已被加密,缴纳赎金。勒索窗口如下图所示:
当勒索窗口上的倒计时结束时,其会读取衍生文件“%USERNAME%\Documents\Driver\aaa.print”获取当前加密倍数将其提高两倍并弹出窗口提示受害者“由于您长时间未付款,价格提升为两倍,Sorry”。如下图所示:
5.2.7 勒索软件自带解密方式
安天CERT在分析的过程中发现该勒索软件包含解密程序,在勒索窗口中存在一个按键“查询当前付款状态及解密”。当用户点击该按键时,该勒索软件针对“%USERNAME%\Documents\Driver\a.print”中内容进行解密获取比特币钱包地址,连接比特币官网查询当前该账户钱包余额是否大于等于0.045BTC,若大于则进行相应的解密操作。
图5‑18 勒索窗口解密按钮
该勒索软件解密方式与加密方式类似,具有三种解密方式。根据所加密方式的不同所采用的解密方式不同。解密方式如下表所示:
XOR解密 | AES解密 | RSA解密 |
在本次所分析的样本中采用的解密策略是XOR解密方式,所以解密所采用的解密密钥与加密密钥一样。解密密钥如下表所示:
表5‑6 解密策略是XOR解密方式
XOR解密密钥 | 类型 |
1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5 | Byte |
具体解密方式为采用指定长度的字符XOR指定文件前100byte字符。
在分析的过程中发现RSA解密和AES解密功能未完善,如下所示RSA解密方式函数,读取K.log文件获取密钥并未后续解密操作。
IoCs |
b0E68A3352D31A9DD403A5ACAE6387A0 |
hxxps://lihi1.cc/4kdW2 |